import ENV from "@/config/env.js";
const Namefix = ENV.STORAGE_NAME;
const Obj = {
  /**
   * 清理所有缓存
   **/
  clear: function () { uni.clearStorageSync(); },
  /**
   * 删除指定缓存
   **/
  remove: function (k) { uni.removeStorageSync(Namefix + k); },
  /**
   * 设置缓存
   * @param {string} k [键名]
   * @param {object} v [键值]
   * @param {number} t [时间、单位秒]
   */
  set: function (k, v, t) {
    uni.setStorageSync(Namefix + k, JSON.stringify({ v: v, e: t > -1 ? (new Date().getTime() + t) : -1 }));
  },
  /**
   * 获取缓存
   * @param {string} k [键名]
   * @returns  {object | null}
   **/
  get: function (k) {
    let i = null;
    try { i = JSON.parse(uni.getStorageSync(Namefix + k)); } catch (error) { }
    if (i) { if (i.e !== -1 && new Date().getTime() >= i.e) { Obj.remove(k); i = null; } }
    return i;
  },
  /**
   * 更新缓存
   * @param {string} k [键名]
   * @param {object} v [键值]
   */
  update: function (k, v) {
    let i = Obj.get(k);
    if (i !== null) { uni.setStorageSync(Namefix + k, JSON.stringify({ v: v, e: i.e })); return true; }
    else { return false; }
  }
}

export default  Obj;
